1. Field of the Invention
This invention relates to computer systems and, more particularly, to availability in storage environments employing distributed block virtualization techniques.
2. Description of the Related Art
Many business organizations and governmental entities rely upon applications that access large amounts of data, often exceeding a terabyte or more of data, for mission-critical applications. Often such data is stored on many different storage devices, which may be centrally located or distributed throughout an enterprise. Such storage devices may be heterogeneous in nature, including many different types of devices from many different manufacturers.
Configuring individual applications that consume data, or application server systems that host such applications, to recognize and directly interact with each different storage device that may possibly be encountered in a heterogeneous storage environment would be increasingly difficult as the environment scaled in size and complexity. Therefore, in some storage environments, specialized storage management software and hardware may be used to provide a more uniform storage model to storage consumers. Such software and hardware may also be configured to add storage features not present in individual storage devices to the storage model. For example, features to increase fault tolerance, such as data mirroring, snapshot/fixed image creation, or data parity, as well as features to increase data access performance, such as disk striping, may be implemented in the storage model via hardware or software.
In such a storage environment, a set of hardware or software servers (also referred to herein as volume servers) may be capable of providing the enhanced storage features to storage consumers (also referred to herein as volume clients). However, it may be impractical to allow physical access from each such server to each of the many storage devices in the storage environment. Therefore, a particular server may be configured to implement the enhanced storage functionality for a specific set of storage devices to which the server has physical access. Storage consumers may interact with the server to make use of the enhanced features during operations on data stored in the set of storage devices managed by the server. From time to time, a failure (such as a server crash or a loss of connectivity) may occur that prevents storage consumers from using the enhanced functionality. A mechanism that allows storage consumers to quickly resume access to the enhanced storage functionality in the presence of such a failure may be desirable.